------------------------------------ Qoole v2.31 Quake Object Oriented Level Editor By Matthew Ayres and Paul Hsu ------------------------------------ Qoole is (C)1997 by Lithium Software. All rights reserved. Quake is a trademark of Id Software, Inc. 1. Introduction ---------------- Qoole is a 3D level editor for the popular computer games Quake and Quake II written by id Software, Inc. Qoole is an acronym for 'Quake Object Oriented Level Editor', and is pronounced like the word 'cool'. It is capable of creating new Quake levels and modifying existing levels saved in id's ".map" or Qoole's ".qle" file formats. Qoole features the Object Oriented level editing methodology, as well as an intuitive user interface that provides powerful editing functions. These functions include: Object Oriented grouping and scoping Object move, rotate and scale manipulations Using premade brush and object primitives Brush vertex, edge and face manipulations Brush hollowing Constructive Solid Geometry Subtraction Undo operations Entity property editing Wireframe/Solid Polygons/Texture previews Fast 3D rendering engine Easy map navigating interface Texture bookmarks Texture move, rotate and scale manipulations Multiple texture files manager Compiling BSP files and running Quake from within the program And many others... Qoole allows you to build Quake level maps effortlessly without requiring you to have any prior 3D map editing experience. Both beginners and advanced map creators will find Qoole to be an indispensable tool for designing professional looking Quake levels quickly and easily. 2. Map Editing Concepts ------------------------ There are 2 primary elements in a Quake map: brushes and entities. A brush is simply a 3 dimensional solid block. In a Quake map, the world is made out of solid blocks. To make a simple cubic room, one would need 6 brushes to enclose off an empty area; 1 brush for the ceiling, 1 brush for the floor, and 4 brushes for the surrounding walls. As for the second element to a Quake map, there are 2 kinds of entities: item entities and applied entities. The item entities are basic items in Quake such as weapons, health boxes and monsters. The applied entities are special properties that are assigned to some brushes to make them perform certain functions, such as an elevator that moves up and down or a door that opens and closes. 3. Object Oriented Concept --------------------------- Qoole considers everything as an object. An object can be either an item from Quake (an entity), a convex solid block (brush), or a group of other objects. This simple concept results in the powerful feature of multi-layered grouping. Grouping allows you to build structures such as a staircase, an arch, a bridge or a chair out of simple brushes. Grouping also lets you to make complex rooms and level sections quickly out of those structures. Imagine a level made out of 'rooms', which are made from simpler structures, which themselves are made from other smaller objects or brushes. The Object Oriented editing methodology hides unnecessary information from the user. With it, you can construct a level based on logical objects instead of thousands of brushes and vertices. The methodology also introduces modularity and portability. The user can build independent sections of a level without worrying about the rest of the map, thus the user is able to compile libraries of re-usable, complex objects. It removes the extra work required to remake similar structures in different maps. It also opens the possibility of using third party supplied structure and object libraries. 4. Menu Commands Description ----------------------------- Here we briefly explain of each of the menu commands and its function in Qoole. Some commands are pretty obvious, and require little or no explanation. We start with the File menu. File Menu New, Load, Save, Save As, Exit Export Map This allows you to save your Quake maps in the id's ".map" format. The saved ".map" file however will lose any object grouping information that was added in Qoole. You'd normally use this function to distribute your maps for public release so they can be compiled and loaded in other Quake map editors. When exporting a ".map" file, Qoole also creates a ".wad" file containing only the textures used by the map. It is often very useful to supply this ".wad" file with the ".map" file. Export BSP Before you can load a map as a level in Quake, it must be compiled into the binary format ".bsp" that Quake understands. Normally you use three other utilities to accomplish this: QBSP, LIGHT and VIS. These three utilities are included with the Qoole distribution. The menu command Export BSP brings up a dialog box that allows you to select the different utilities you need to run and compile your map. It can also start up Quake and load the level for you after Qoole has compiled the map. Edit Menu Undo, Cut, Copy, Paste, Delete, Duplicate CSG Subtract The function CSG Subtract works very much like a cookie cutter. It carves holes out of solid brushes using the selected object as the cutting shape. It removes the portions of other brushes intersecting the selected object. This is often used to break open the walls inbetween 2 adjacent rooms to make a doorway. This function only applies to the brushes in the level and has no effects on entities. Hollow Brush This function only applies to brushes. It hollows out a solid block, breaking it down to multiple thin blocks surrounding an empty area inside. This is often used to create rooms out of enlarged cubic brushes. Mode Menu A mode in Qoole selects the default mouse operation. There are 11 different editing modes in Qoole: Object Select, Object Move, Object Rotate, Object Scale, Vertex Move, Edge Move, Face Move, Eye Move, Eye Rotate, Eye Zoom, and Walk-Through. Qoole is always in one of these operation modes. The different modes are explained below. Object Select This mode selects an object that will be manipulated by other operations. You can select only one object at a time (see grouping section on how to make multiple objects into one). Qoole draws the selected object in red in the edit windows. To select an object in this mode, place the mouse over the object and keep clicking the left mouse button until the object is highlighted in red. The selection cycles through from the nearest to the furthermost objects positioned underneath the mouse cursor. The Object Selection mode also is embedded in the Object Move, Object Rotate and Object Scale modes. To select an object in these modes, left click on the object without moving the mouse. Object Move This mode changes the position of the selected object. To move an object, simply left click on the selected object in any edit windows, drag it to a new position and release. You may only move an object in the plane parallel to the edit window. Object Rotate This mode changes the orientation of the selected object. To rotate an object, left click on the selected object in any edit window, drag the mouse left or right and release. This rotates the object in the counter-clockwise and clockwise directions fixed in the plane parallel to the window. If an object contains an item entity, the object's rotation will be restricted to the plane parallel to the world. If an object consists of only brushes, it can rotate freely in any direction. Object Scale This mode changes the size of an object. Similar to Object Move and Rotate, you scale an object by left clicking on the selected object, dragging and releasing. By default, Qoole limits scaling to 2 dimensions at a time. These 2 dimensions are defined by the axes of the plane parallel to the window. When scaling an object, only brushes in that object are changed. You cannot modify an item-entity's size. Vertex Move This function only applies to brush objects. It allows you to modify the shape of a brush by changing the positions of its vertices. In this mode, the selected brush is displayed with yellow dots at its vertices. To move a vertex, simply left click on its yellow dot and drag it to a new position. When compiling a Quake map, all solid brushes must be convex (bowed outward). You can't change the position of a vertex into an invalid concave shape (with a 'cave' in it). This usually happens when you drag a vertex out of the planes of the faces containing the vertex. Qoole prompts you when this happens, and snaps the brush back to its original shape. Edge Move This function only applies to brush objects. It allows you to move an edge of the selected brush into a new position. In this mode, the selected brush is displayed with yellow dots in the middle of all its edges. To move an edge, simply left click on a yellow dot and drag it to a new position. Moving an edge may deform the brush into an invalid concave shape. Qoole prompts you when this happens, and snaps the brush back to its original shape. Face Move This function only applies to brush objects. It allows you to move a face of the selected brush into a new position. In this mode, the selected brush is displayed with yellow dots at the middle of all its faces. To move a face, simply left click on its yellow dot and drag it to a new position. Moving a face may deform the brush into an invalid concave shape. Qoole prompts you when this happens, and snaps the brush back to its original shape. Eye Move This mode changes the where the virtual "eye" is looking from in the editing windows. By default, the 4 editing windows all focus on one point in space. If you move the view of an editing window, all the other editing windows will update their views relative to the new editing focus point. To move this focus position, left click and drag the mouse in any window. This movement is fixed in the plane parallel to the window. To move the focus position forward and backward in the 3D view, right click and drag the mouse forward and backward inside the 3D editing window. You can also use the arrow keys at any time to move an editing view's position. Eye Rotate (Orbit) This mode changes the orientation of the view in the 3D edit window. There are 2 ways to do this. The 1st way is to have the 3D view revolve and "orbit" around the editing focus point. The position of the virtual "eye" changes, but the position of the editing focus point deos not. Thus this will not affect the views of the 2D windows. To do this, LEFT click and drag the mouse in the 3D edit window. By default, this mode uses the "crystal ball" interface, where one rotates the world like spinning a crystal ball centered at the editing focus point. If the option "inverse mouse" is enabled in the config window, then this mode uses the "orbiting" interface, where you move the eye position left and right revolving around the focus point. The 2nd way is to have 3D view's "eye" stay at the same position, but only rotate it's view to look up, down, left and right. If the option "View Locking" is enabled, this mode derives a new editing focus point based on the new viewing direction, and updates the other 2D views relatively. To rotate the view, RIGHT click and drag the mouse in the 3D edit window. Eye Zoom This changes the zoom level of the 2D views. Left click in any window and drag the mouse up and down. In the 3D view, this mode increases and descreases the distance between the 3D view's "eye" position and the editing focus point. Walk-Through This mode allows you to move the 3D view around in the level using a similar interface to Quake's movement controls. While in this mode, you move the mouse to look left, right, up and down. You can enable the "inverse mouse" option in the config window if you prefer the "airplane" style of control. The default keys for moving in the 3D view are: FORWARD - 'w', up arrow or right mouse button; BACKWARD - 's' or down arrow; LEFT - 'a', or left arrow; RIGHT - 'd' or right arrow; UP - 'e' or Pg Up; DOWN - 'c' or Pg Dn. Press ESC, SpaceBar, or the Enter key at any time to quit out of the Walk-Through Mode. Object Menu Grouping Menu Grouping and scoping are essentially the Object Oriented features of Qoole. With grouping and scoping, you manipulate multiple brushes as grouped logical objects. You can change the grouping information of an object by using the following menu commands. Add To You use this command to mark the objects that you want to group together. It changes the selected object's color to brown to show that you have marked it. Finish This command takes the current marked objects and groups them together into a new logical object. Ungroup This command ungroups the selected objects, separating the immediate subcomponents into individual objects. Scope Menu Scopes are very similar to the directory hierarchy of a file system. Qoole defines the scope of an object by the grouping of the object's immediate subcomponents. If we ever want to modify the components of an object, we need to enter the object's scope first. Qoole provides the scope up and scope down commands for this purpose. The top most scope in a Quake map always contains the worldspawn entity, which defines certain properties for the entire Quake level. Scope Up This "exits" the scope of an object. If the current scope is the top most scope in the entire level, and there are multiple objects in the current scope, Qoole creates a new scope and places all the objects together into the new group. An analogy of this function to a file system would be like going to the parent directory. Scope Down This "enters" the scope of a grouped object. By default, everything other than the selected object will disappear from the editing windows. Scoping down hides unnecessary information about the rest of the world when you're working on individual objects in a Quake level. An analogy of this function to a file system would be like entering a sub directory. Add Brush Menu This menu provides several primitive brushes that you can use in Qoole. These primitive brushes include cubes, spheres, triangular and rectangular prisms of different sides, etc. When adding new brushes, Qoole places them at the center of the 4 editing windows when you have enabled 'View Locking' (see "Lock View"). Add Entity This menu shows you the item entities that you can add to a Quake level. When adding new item entities, Qoole places them at the center of the 4 editing windows when you have enabled 'View Locking' (see "Lock View"). Delete This command deletes the currently selected object. Apply Entity This menu shows you the properties you can apply to brushes to make them perform functions in Quake. These functions include doors, elevators, moving platforms, etc. Entity Properties This command brings up the entity properties window. It is used to modify the attributes and properties of entities that define their behavior in a Quake level. Load Prefab This command loads a Qoole object file from the prefab directory on the hard drive. Save Prefab This command saves the selected object as an individual Qoole Object in the prefab directory on your hard drive. By default, Qoole saves the prefabs in ".qle" format. Texture Menu Apply This command applies the selected texture in the textures window to all the faces of the selected object. You can also do this by double clicking on the selected texture in the textures window, or pressing T. Texture Properties This command brings up a window that allows you to change and align the texture on an individual face of a brush. You also can press Alt+T to bring up this window. Details This command brings up a window displaying the dimension of the selected texture from the textures window. You also can right click on the texture inside the textures window, and select the Details command to get to this window. Bookmarks This command brings up a window that allows you to bookmark your favorite textures from the textures window. You also can press Alt+B to bring up this window. Add Wad This command lets you add an additional texture file to Qoole's texture database. Wad Manager This command lets you add and remove texture files from Qoole's texture database. You can also specify the texture files that will be displayed in the textures window. View Menu Add Window This command adds other view windows in additional to the standard 4 editing windows. Render Style The menu lets you select the rendering style of the 3D window. The available styles include wireframe, solid polygon and textured rendering. Goto Center This centers the 4 editing views to the object scope. Lock Views By default, the 4 editing views focus on a common point in space. When you change the position of one of the views, the other editing views update themselves relative to the new focus point. The Lock Views command enables and disables this focus feature. When disabled, all the 4 editing views can move independently from each other. Dec/Inc View Depth To make it easier to see an editing view, Qoole doesn't display portions of a map beyond a certain viewing range. These 2 menu commands increase and decrease this viewing range. Cascade/Default Layout This command repositions the 4 editing windows back to the default desktop layout. Options Menu Config Window This command lets you change Qoole options. Entity Set This command lets you choose the commercial add-on pack that you're building the map for. This changes the entities that you can add to your levels. Video Modes This command lets you change the video resolution when Qoole is running under full screen mode. About Information about Qoole. 5. User Interface ------------------ Now we will explain the user interface and the functions of each of the windows. Editing Windows The 4 editing windows display the map you are building from 4 different viewing directions: top, back, side and an arbitrary 3D angle. By default, these 4 views are focused on a common point in space. When you move the view in one window, Qoole updates the other views relative to the new focus point in space. You can "lock" and "unlock" the views of the 4 windows by using the menu command "Lock View." Quake uses a right handed coordinate system for its maps. To understand this system better, imagine an everyday road map. The positive X axis is like the direction east, and points to the right side in the top view window. The positive Y axis is like the direction north, and points up in the top view window. Then simply think of the Z axis as the measurement of height in our Quake maps. The positive Z axis comes out of the top view window and points toward us. The back window provides the view toward the north direction, and the side window provides the view toward the west direction. The 3D window is simply a camera view that 'orbits' around the editing focal point in space. The 3D window can be rendered in wireframe, solid fill polygons or textured preview styles. This can be changed by the "View->Render" menu commands. You can reset the views of the editing windows back to the origin with the menu command "View->Home." The editing views have a display depth range. Portions of a map will not display beyond a certain distance in the views. It is helpful when building large Quake levels because it reduces the number of objects shown on the screen. You can adjust the distance value by using the menu commands "View->Decrease View Depth" and "View->Increase View Depth." To further unclutter the editing windows while building a level, you can turn off the display of item entity wireframes in the map. You do this by disabling the "display entities" option in the configuration window. Textures Window This window displays all the textures from the texture files you specified in Qoole's wad file manager. You can apply these textures to brushes when creating a Quake level. Whenever you add a new brush into a map, Qoole applies the selected texture from the textures window to all the faces of the new brush. To change the texture of a brush in a map, first select the brush object, then scroll through the textures window, left mouse click on the new texture to select it, and right mouse click and select the apply command. Texture Files (WADs) Manager This window allows you to add and remove texture files to and from Qoole's texture database. It also lists all the wad files that's in the database, and the number of textures contained in each wad file. Some files are listed with a check mark next to them, which means that the textures from those wad files are displayed in the textures window. To check or uncheck a file, just double click on the file entry in the window. Texture Details Window To bring up this window, select a texture in the textures window, right mouse click, and select the details command. This window displays the selected texture's true dimension. Bookmark Window You use this window to bookmark textures from the textures window. To bring up this window, select the menu command "Textures->Bookmarks", or press Alt+B. The bookmark window contains 7 texture slots. To bookmark a commonly used texture, select the texture first in the textures window, then press the "Set" button of an empty slot inside the bookmark window. To quickly move to a bookmarked texture in the textures window, simply click on the texture in the bookmark window. The "reset" button in the window clears all the 7 texture bookmarks. The "save" button saves the bookmarking information into a file. The "load" button reloads the bookmarking information from a file. Texture Property Window By default, the selected texture from the textures window is applied to all the faces of a new brush. This window allows you to apply a different texture to individual faces of the selected brush object. To bring up this window, first select a brush object, then select the menu command "Texture->Texture Properties," or press Alt+T. Use the "Next" and the "Previous" buttons to cycle through the faces of the brush. The selected face is always outlined in the color yellow. To assign a different texture to this face, select a new texture in the textures window, right click, and select the apply command. Use the X and Y offsets, and X and Y scale adjustments to align a texture along the edges of the face. Use the "angle" adjustment to rotate the orientation of the texture on the face. Repeat this process for the different sides of the selected brush as needed. Object Window This window displays the texture that you applied to the selected object. If the object consists of brushes that have been applied with different textures, this window displays the words "Multiple Textures." Entity Property Window This window lets you modify the behavior of entities in a Quake level. An entity's behavior is defined by a list of attributes and their values. These attributes have different meaning depending on the type of entity they are associated with. Usually the attributes have the general meanings described below: targetname The name of the entity. target The target of a trigger entity. message Message displayed when a trigger entity is triggered. style Entity specific styles. spawnflags Entity specific attributes. speed How fast the entity moves. wait How long the entity waits between completion of movement. lip The amount of door/button to remain in place when opened or pushed. health How much damage the entity takes before it triggers. delay Time before an event is triggered. sounds The sound the entity makes when triggered. height How high a platform will raise. To modify the behavior of an entity, select the entity object first. Then select the menu command "Object->Entity Properties," or press Alt+E. Click in the attribute fields and change their values. 6. Config windows ------------------ Config Snap This value determines how much precision you have on manipulating objects. Lower values give you more precision, while higher values make aligning objects easier. Draw Grid This value determines how many units between grid lines in the views. Hollow Wall This sets the wall thickness for objects that are hollowed. Rotate Snap This value effects the precision on object rotations. Sensitivity Mouse sensivitity for object manipulations. Gamma Gamma correction sets the brightness of the Qoole GUI. Snapping Toggles snapping on and off. Invert Mouse Inverts the mouse for eye rotation modes. Group Sub Pieces This option enables automatic grouping of objects broken up by a CSG Subtraction. Show Entities Toggles display of entities in all views. Crosshair Toggles the crosshair (your editing position) in the 3d view. Brush Info Display brush info for current scope at top of each window. Coord Info Display coordinate info of what the mouse cursor is over at top of each window. Real Coord Toggles the real coordinate system on and off. If you turn this off, and scope down into an object, the origin changes to the center of the object. Advanced Config Unsaved Query Should Qoole ask if you want to save unsaved changes before going to a new map or exiting? Save Win Positions Save window positions between sessions. Auto Default Layout Use default window layout after Qoole window is scaled or fullscreen mode is toggled. Xmouse Unix-style Xmouse toggle. Nifty. Auto Center When scoping down, automatically centers the view to the object. Auto Move Mode After adding a brush, if in an eye mode, switch to object move mode. Switch 3D View Clicks Switches what the left and right mouse buttons do in 3d eye move and rotate modes. No 3D View Editing Toggle to disallow editing in the 3d view. Wireframe During Changes Switch to wireframe render during changes or eye moves, for faster operation. Solid During Changes Switch to solid render (if in textured) during changes or eye moves, for faster operation. Lock Buttons Display lock buttons in the top right of each window for more control over view locking. Scaled Mouse Mouse movements scaled based on current 2d zoom rate for object manipulations. Animated Textures Toggle animation of textures. Texture Scroll Wait When scrolling through textures, wait until the user pauses before updating. Texture Mipmaping Toggle level of detail (LOD) on and off. Distant textures look better with this on. Entities While Textured Toggle if entities should be shown while in texture rendered mode. 7. Compiling and running your maps ----------------------------------- Before you can load a map in Quake, you need to compile it into the ".bsp" format that Quake understands. There are 3 utilities used to convert a Quake map: qbsp.exe, light.exe and vis.exe. QBSP converts the map into the .bsp format used by Quake. Light adds the lighting information to the .bsp file. Vis optimizes the .bsp file to improve Quake's run-time performance. You can run these programs from the Export BSP window. Often there will be errors compiling your map with qbsp, light and vis, and a ".bsp" file won't be produced for your map after running these programs. These are usually caused by problems in your Quake maps. A few of the common problems people run into include building an entire Quake map out of liquid textures by mistake, or forgetting to include a player start position in the level. QBSP warns you of these problems when it tries to compile your map. If you get an error message, try to find out what the problem is, fix it, and re-run QBSP. The Quakelab web site has organized a very detailed list of Quake map compiling problems and solutions. If you meet an error message that you don't understand, please check this informative resource first. The problem listing is included in the /Quakelab directory on the Qoole CDROM, and may also be downloaded from the Quakelab Editing Web Site on the Internet at http://www.planetQuake.com/Quakelab/problems.html. ---- Document (C)1997 by Lithium Software. All rights reserved.